\section{Uncertainty in modeling}\label{sec:uncertainty}
\vspace{-0,3cm}

In software engineering decisions have to be made at different stages. Despite the nature of software means making these decisions with absolute confidence, uncertainty appears everywhere~\cite{SCRS05}. Typically, it occurs when the designer does not have complete, consistent and accurate information required to make a decision during software development. Introducing uncertainty in modeling processes means that, rather than having a single model, we actually have a set of possible models and we are not sure which is the correct one~\cite{FSC12}. Thus, handling uncertainty requires the modeler to use this set whenever an individual model would be used. In addition, managing a set of models explicitly is impractical as its size might be quite large. On the other hand, if uncertainty is ignored and one particular possible model is prematurely chosen, we risk having incorrect information in the model. 

For these reasons, non-bijective transformations (as described in the previous section) are strictly related to uncertainty, which becomes manifest only after the transformation is executed but clearly originates at design-time. When uncertainty occurs in a transformation has to be handled similarly to \emph{manual} uncertainty: in both cases, decisions must be delayed until more information is available. Recently, an approach~\cite{FSC12,FS13} has been proposed to cope with different aspects of this problem. In particular, the concept of \emph{partial model} has been given  in terms of graph theory to capture uncertainty in models. In essence, by means of first-order logic annotations \emph{points of uncertainty} can be introduced in the model, each denoting a possible \emph{concretization}, i.e., a model where the uncertainty is resolved. 

Unfortunately, the approach has been not implemented in any of the generic modeling, such as Eclipse/EMF. Therefore, this represents the starting point for extending a language like JTL semantics and its transformation engine towards an uncertainty-aware solution, capable of dealing with the intrinsic non-determinism of non-bijective transformation in terms of uncertain or partial models. 

 % in terms of a suitable metamodel for represent uncertainty and a  
%several difficulties when dealing with uncertainty 


%Therefore the multiplicity of solutions management in JTL requires a formalization for uncertainty.

%molti dei concetti proprosti sono adatti a fornire una soluzione al nostro problema. Tuttavia  nonostante la letteratura non esiste un metamodello o una implementazione dell’incertezza in una delle piattaforme di modellazione generica, in particolare EMF. Dunque la gestione della molteplicita delle soluzioni per JTL deve necessariamente passare per una formalizzazione dell’incertezza.




 







